#include <rtthread.h>
#include "base.h"

/*---------------------------------------
 * 任务1：LED心跳
 * 每2秒闪烁一次，表示系统运行正常
 *--------------------------------------*/
void led_task_entry(void *param) {    
    RT_UNUSED(param);

    while (1) {
        led_toggle(LED0);
        rt_thread_mdelay(2000);
    }
}

/*---------------------------------------
 * 任务2：按键检测
 * 实时检测按键，按下时串口打印消息
 *--------------------------------------*/
void key_task_entry(void *param) {    
     RT_UNUSED(param);

     while (1) {
        if (key_pressed()) {
            led_set(LED1, 1);
        } else {
            led_set(LED1, 0);
        }
    }
}
  
/*---------------------------------------
 * 应用入口（main函数）
 *--------------------------------------*/
int main(void) {
    hardware_init(); 

    /* 创建LED心跳任务 */
    rt_thread_t led_thread = rt_thread_create(
        "led_heartbeat",
        led_task_entry,
        RT_NULL,
        4096,   // 栈大小
        0,    // 优先级
        5      // 时间片
    );
    
    /* 创建按键检测任务 */
    rt_thread_t key_thread = rt_thread_create(
        "key_monitor",
        key_task_entry,
        RT_NULL,
        4096,   // 栈大小
        0,    // 优先级
        5      // 时间片
    );
    
    /* 启动所有任务 */
    if (led_thread) rt_thread_startup(led_thread);
    if (key_thread) rt_thread_startup(key_thread);
    
    return 0;
}